using System.Collections.Generic;
using Accona.Monitoring.Consumers;
using Accona.Monitoring.Exposure;
using Accona.Monitoring.Publishers;

namespace Accona.Monitoring
{
    public class MonitorConfig
    {
        private readonly IList<IConsumer> _consumers = new List<IConsumer>();
        private readonly IList<IPublisher> _publishers = new List<IPublisher>();
        private readonly IList<IExposure> _exposures = new List<IExposure>();
        private readonly IList<Schedule> _schedules = new List<Schedule>();

        public void AddConsumer(IConsumer consumer)
        {
            this._consumers.Add(consumer);
        }

        public void AddPublisher(IPublisher publisher)
        {            
            this._publishers.Add(publisher);
        }

        public IEnumerable<IPublisher> Publishers { get { return _publishers; } }

        public void AddExposure(IExposure exposure)
        {
            this._exposures.Add(exposure);
        }

        public void AddSchedule(Schedule schedule)
        {
            _schedules.Add(schedule);
        }
    }
}